﻿Public Class ConsultarOrdenServicio
    Private mModoAcceso As String
    Public Property ModoAcceso() As String
        Get
            Return mModoAcceso
        End Get
        Set(ByVal value As String)
            mModoAcceso = value.Trim.ToUpper
        End Set
    End Property

    Private Sub ConsultarOrdenServicio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Select Case ModoAcceso
            Case "ASIGNAR TECNICO"
                btnAceptar.Visible = True
                btnImprime.Visible = False
            Case "MODI OS TECNICO"
                btnAceptar.Visible = True
                btnImprime.Visible = False
            Case "MODI OS VEDEDOR"
                btnAceptar.Visible = True
                btnImprime.Visible = False
            Case "INFORME OS"
                btnAceptar.Visible = True
                btnImprime.Visible = True
        End Select
    End Sub

    Public Sub FormatoGrilla()
        lvOrdenServicio.Items.Clear()
        lvOrdenServicio.Columns.Clear()
        lvOrdenServicio.Columns.Add("Nro. Orden", 80) '0
        lvOrdenServicio.Columns.Add("Tipo", 90) '1
        lvOrdenServicio.Columns.Add("Fecha Alta", 90) '2
        lvOrdenServicio.Columns.Add("Cliente", 90) '3 (Apellido & Nombre)
        lvOrdenServicio.Columns.Add("Estado", 80) '4
        lvOrdenServicio.Columns.Add("Descripcion", 350) '5
        lvOrdenServicio.Columns.Add("Tecnico", 100) '6
    End Sub

    Public Sub CargaGrilla(ByVal ListaOs As List(Of clsOrden_Servicio))
        Dim Os As New clsOrden_Servicio()
        Dim Os_Det As New clsOrden_Servicio_Detalle()
        Dim CLiente As New clsCliente()
        Dim EstadoOs As New clsEstado_Os()
        Dim TipoOs As New clsTipo_Os()
        Dim Empleado As New clsEmpleado()

        Dim i As Int32

        Try
            For i = 0 To (ListaOs.Count - 1)
                Os = ListaOs.Item(i)
                Os_Det = Os.Detalle.Item(0)
                EstadoOs = Os.Estado
                TipoOs = Os.Tipo
                Empleado = Os.Empleado
                CLiente = Os.Cliente
                lvOrdenServicio.Items.Add(Os.Os_Id.ToString.Trim)
                lvOrdenServicio.Items(i).SubItems.Add(TipoOs.Descri.Trim.ToUpper)
                lvOrdenServicio.Items(i).SubItems.Add(Os.Os_Fecha_Inicio.ToString.Trim)
                lvOrdenServicio.Items(i).SubItems.Add(CLiente.Apellido.Trim.ToUpper & " " & CLiente.Nombre.Trim.ToUpper)
                lvOrdenServicio.Items(i).SubItems.Add(EstadoOs.EstadoOs_Desc.Trim.ToUpper)
                lvOrdenServicio.Items(i).SubItems.Add(Os_Det.Descri.Trim.ToUpper)
                If Empleado.Emp_Id > 0 Then
                    lvOrdenServicio.Items(i).SubItems.Add(Empleado.Apellido.Trim.ToUpper)
                Else
                    lvOrdenServicio.Items(i).SubItems.Add("")
                End If
            Next
        Catch ex As Exception
        Finally
            Os.Dispose()
            CLiente.Dispose()
            EstadoOs.Dispose()
            TipoOs.Dispose()
            Empleado.Dispose()
        End Try
    End Sub
    Private Sub Seleccionar()
        Dim OS As New clsOrden_Servicio()
        Dim OSDao As New daoOrden_Servicio()

        If lvOrdenServicio.SelectedItems.Count = 1 Then
            OS = OSDao.TraeOrdenServicio(Convert.ToInt32(lvOrdenServicio.SelectedItems(0).Text.Trim))
        Else
            MessageBox.Show("Seleccione una Orde de Servicio para continuar", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Exit Sub
        End If

        Select Case ModoAcceso
            Case "ASIGNAR TECNICO"
                frmAsignarTecnico.AsignaCampo(OS)
                frmAsignarTecnico.Enabled = True
            Case "MODI OS TECNICO"
                frmAcualizarOrdenesServicioTecnico.AsignaCampo(OS)
                frmAcualizarOrdenesServicioTecnico.Enabled = True
            Case "MODI OS VEDEDOR"
                ActualizarOrdenServicioVendedor.AsignaCampo(OS)
                ActualizarOrdenServicioVendedor.Enabled = True
            Case "INFORME OS"
                ''Acá va a ir a mostrar el detalle de la orden de servicio
        End Select
        Me.Close()
    End Sub
    Private Sub Salir()
        Select Case ModoAcceso
            Case "ASIGNAR TECNICO"
                frmAsignarTecnico.Enabled = True
            Case "MODI OS TECNICO"
                frmAcualizarOrdenesServicioTecnico.Enabled = True
            Case "MODI OS VENDEDOR"
                ActualizarOrdenServicioVendedor.Enabled = True
            Case "INFORME OS"
                frmInformeCOrdenesServicios.Enabled = True
        End Select
        Me.Close()
    End Sub

    Private Sub ConsultarOrdenServicio_Deactivate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Deactivate
        Salir()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        Seleccionar()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Salir()
    End Sub

    Private Sub lvOrdenServicio_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvOrdenServicio.DoubleClick
        Seleccionar()
    End Sub

    Private Sub btnImprime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprime.Click
        'mejorar sistema impresion
        PrintForm1.Form = Me
        PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
        PrintForm1.Print()

    End Sub
End Class